package com.znsd.zl.house.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.znsd.zl.house.entity.HouseEntity;
import com.znsd.zl.house.entity.vo.HouseRespVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @ClassName HouseDao
 * @Description 描述
 * @author zhubin
 * @date 2020-08-19 22:54:37
 * @Version v1.0
 */
@Mapper
public interface HouseDao extends BaseMapper<HouseEntity> {

	/**
	 * 条件查询分页
	 * @param house 封装条件查询数据
	 * @param startNum 开始数量
	 * @param size      数量
	 * @return  封装查询对象
	 */
	List<HouseRespVO> conditionQueryPage(@Param("house") HouseRespVO house, @Param("startNum") Integer startNum, @Param("size") Integer size);

	/**
	 * 条件查询获取所有总数
	 * @param house 封装条件查询数据
	 * @return  查询到的行数
	 */
	Integer conditionQueryTotal(@Param("house") HouseRespVO house);

	/**
	 * 将房源的数据添加的审核表中进行审核
	 * @param houseId：要审核的房源ID
	 * @param date：创建时间
	 * @return integer ： 1成功 0失败
	 */
	Integer saveAudit(@Param("houseId") Integer houseId,@Param("date") Date date);

	/**
	 * 查询一个房源的状态
	 * @param houseId：房源ID
	 * @return map：返回结果封装map集合对象
	 */
	Map<String,Object> findHouseStatus(Integer houseId);

	/**
	 * 删除和批量逻辑删除
	 * @param idList  id
	 */
	void deleteBatch(List<Integer> idList);

	/**
	 * 根据用户id查询所有的房屋
	 * @param userId：要查询的用户ID
	 * @param page：分页开始页数
	 * @param limit：每页的数量
	 * @return 查询的结果集对象集合
	 */
	List<HouseRespVO> findByUserId(@Param("userId")Integer userId, @Param("page")Integer page, @Param("limit")Integer limit);

	/**
	 * 查询根据用户ID查询的房屋总数
	 * @param userId：根据的用户ID
	 * @return 房屋总数
	 */
	Integer findByUserIdTotal(Integer userId);
}
